#ifndef _FUN_FILE_H_
#define _FUN_FILE_H_

/**
 * @brief is file or folder exists
 * 
 * @param filename file path
 * @return int 1 exist, 0 not exist
 */
int is_file_exists(char *path);

/**
 * @brief Get the file size object
 * 
 * @param path file path
 * @return int return file size(byte), -1 fail
 */
int get_file_size(const char *path);

struct file_list_s {
    char fileName[256];
    struct file_list_s *next;
};
// 获取目录下所有文件
struct file_list_s * get_list_files(const char *path, char *suffix);
void get_list_files_free(struct file_list_s *list);

/**
 * 判断路径是否为目录
 * @return 
 *   1 = 是目录
 *   0 = 不是目录或路径无效
 *  -1 = 系统级错误（如权限不足，文件不存在）
 */
int is_directory(const char *path);

// 创建文件夹 0 成功 -1 失败
int mkdir_rd(char *dir, int allow_recursive);
// 删除文件夹 0 成功 只能删除空文件夹
int rmdir_rd(char *dir);
// 删除文件 0 成功
int remove_rd(char *filename);
#endif
